home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 7
/
FM Towns Free Software Collection 7.iso
/
fb386
/
graf
/
a00_opn2.bas
< prev
next >
Wrap
BASIC Source File
|
1993-11-30
|
12KB
|
421 lines
1000 'A01 **************************************************T.K.MOSAKU
1010 '
1020 SCREEN@ 1:CLS
1030 '
1040 ' 枠を書く
1050 FOR J=0 TO 4 STEP 2
1060 LINE (53-J,37-J)-(265+J,161+J),PSET,5,B
1070 NEXT
1080 LINE (54,38)-(264,160),PSET,[80,10,100],BF
1090 PAINT (0,0),[150,0,150],5
1100 FOR I=0 TO 10
1110 LINE (49+I,175+I)-(269-I,210-I),PSET,[50+3*I,10,70+3*I],BF
1120 NEXT
1130 FOR I=0 TO 10
1140 LINE (29+I,13+I)-(289-I,230-I),PSET,[50+10*I,10+I,70+10*I],B
1150 NEXT
1160 WAIT 100
1170 '
1180 ' コメント
1190 FOR T=0 TO 1
1200 READ A$,B$:NA=LEN(A$):NB=LEN(B$)
1210 FOR I=0 TO NA/2-1
1220 SYMBOL@(70+15*I,68),MID$(A$,I*2+1,2),1!,1!,6
1230 BEEP 1
1240 WAIT 10
1250 BEEP 0
1260 WAIT 10
1270 NEXT I
1280 '
1290 FOR I=0 TO NB/2-1
1300 SYMBOL@(112+15*I,100),MID$(B$,I*2+1,2),1!,1!,6
1310 BEEP 1
1320 WAIT 10
1330 BEEP 0
1340 WAIT 10
1350 NEXT I
1360 LOCATE 33,23:COLOR 6:PRINT "BY T.K.MOSAKU"
1370 WAIT 200
1380 '
1390 LINE (54,38)-(264,160),PSET,[80,10,100],BF
1400 NEXT
1410 GOTO 1470
1420 '
1430 DATA BASICによる,グラフィックス入門
1440 DATA グラフィックスの基本を,学習してみましょう
1450 '
1460 WAIT 100
1470 GOSUB *COMMENT
1480 WAIT 100
1490 '
1500 '*YOKOSEN
1510 FOR J=0 TO 152
1520 LINE (83,99)-(83+J,99),PSET,5
1530 FOR A=0 TO 150:NEXT
1540 NEXT
1550 WAIT 100
1560 '
1570 '*TATESENN NI KAERU
1580 FOR J=0 TO 76
1590 LINE (83+(J-1),99-.38!*(J-1))-(235-(J-1),99+.38!*(J-1)),PSET,[80,10,100]
1600 LINE (83+J,99-.38!*J)-(235-J,99+.38!*J),PSET,5
1610 NEXT
1620 LINE (159,70)-(159,128),PSET,5
1630 WAIT 100
1640 GOSUB *COMMENT
1650 WAIT 100
1660 '
1670 '*HIDARI YOSE
1680 LINE (159,70)-(159,128),PSET,[80,10,100]
1690 FOR T=158 TO 74 STEP -2
1700 LINE (T,70)-(T,128),PSET,5
1710 LINE (T+2,70)-(T+2,128),PSET,[80,10,100]
1720 WAIT 5
1730 NEXT
1740 GOSUB *COMMENT
1750 WAIT 100
1760 '
1770 '*MIGI YOSE
1780 FOR T=74 TO 240 STEP 2
1790 LINE (T,70)-(T,128),PSET,5
1800 LINE (T-2,70)-(T-2,128),PSET,[80,10,100]
1810 WAIT 5
1820 NEXT
1830 WAIT 100
1840 GOSUB *COMMENT
1850 WAIT 200
1860 GOSUB *COMMENT
1870 WAIT 150
1880 '
1890 '*MOU 1DO HIDARI YOSE
1900 LINE (74,70)-(74,128),PSET,5
1910 LINE (240,70)-(240,128),PSET,[80,10,100]
1920 WAIT 100
1930 GOSUB *COMMENT
1940 WAIT 150
1950 '
1960 '*ASIATO WO TUKETE
1970 FOR T=74 TO 242 STEP 2
1980 LINE (T,70)-(T,128),PSET,5
1990 WAIT 5
2000 NEXT
2010 WAIT 100
2020 GOSUB *COMMENT
2030 WAIT 200
2040 '
2050 '*KESU
2060 FOR T=74 TO 242 STEP 2
2070 LINE (T,70)-(T,128),PSET,[80,10,100]
2080 WAIT 5
2090 NEXT
2100 GOSUB *COMMENT
2110 WAIT 100
2120 '
2130 '*IRO BETU
2140 FOR C=2 TO 4
2150 FOR T=74 TO 242 STEP 2
2160 LINE (T,70)-(T,128),PSET,C
2170 WAIT 5
2180 NEXT
2190 WAIT 100
2200 NEXT
2210 FOR T=74 TO 242 STEP 2
2220 LINE (T,70)-(T,128),PSET,[80,10,100]
2230 NEXT
2240 WAIT 100:GOSUB *COMMENT
2250 WAIT 100
2260 FOR C=3 TO 2 STEP -1
2270 FOR T=74 TO 287 STEP 2
2280 IF T>242 THEN GOTO 2310
2290 LINE (T,70)-(T,128),PSET,C
2300 IF T<114 THEN GOTO 2320
2310 LINE (T-44,70)-(T-44,128),PSET,[80,10,100]
2320 WAIT 5
2330 NEXT
2340 NEXT
2350 WAIT 100
2360 GOSUB *COMMENT
2370 WAIT 100:C=1
2380 FOR T=74 TO 242 STEP 2
2390 LINE (T,70)-(T,128),PSET,C
2400 WAIT 5
2410 C=C+1:IF C>7 THEN C=1
2420 NEXT
2430 WAIT 100
2440 GOSUB *COMMENT
2450 WAIT 100
2460 FOR T=74 TO 242 STEP 2
2470 LINE (T,70)-(T,128),PSET,[80,10,100]
2480 WAIT 5
2490 NEXT
2500 GOTO 2680
2510 '
2520 *COMMENT
2530 READ A$
2540 A=LEN(A$):B=(80-A)\2:LOCATE 0,20:COLOR 6:PRINT SPACE$(B)+A$
2550 RETURN
2560 '
2570 DATA ☆☆☆ グラフィックスの基本は直線です。 ☆☆☆
2580 DATA ☆☆☆ この直線を左に移動させます。 ☆☆☆
2590 DATA ☆☆ この直線を右端まで移動させてみます。 ☆☆
2600 DATA 移動する直線が足跡を残したとするとどうでしょう。
2610 DATA ☆☆☆ 直線を元に戻して移動させてみます。 ☆☆☆
2620 DATA ☆ 今度は移動した直線が足跡を残して行きます。 ☆
2630 DATA この移動した直線の足跡がグラフィックスです。
2640 DATA ☆色を変えると雰囲気も変わりきれいに見えます。☆
2650 DATA ☆ 移動させるとまた変わった雰囲気になります。☆
2660 DATA ☆ 順に色を変えると、また変わって見えます。 ☆
2670 DATA ☆☆☆ これが、 グラフィックスの基本です。☆☆☆
2680 '
2690 'A02 ************************************************************
2700 RESTORE 3340'
2710 GOSUB *COMMENT:WAIT 100
2720 LINE(158,67)-(158,131),PSET,5:WAIT 100
2730 '
2740 LINE(158,67)-(158,131),PSET,[80,10,100]
2750 FOR I=2 TO 32
2760 CIRCLE (158,99),I,5,32/I,,,N:WAIT 5
2770 CIRCLE (158,99),I,[80,10,100],32/I,,,N
2780 NEXT
2790 CIRCLE (158,99),32,5,,,,N
2800 WAIT 100
2810 GOSUB *COMMENT
2820 WAIT 200:GOSUB *COMMENT:WAIT 100
2830 CIRCLE (158,99),32,[80,10,100],,,,N
2840 CIRCLE (95,99),32,5,,,,N
2850 WAIT 100
2860 GOSUB *COMMENT
2870 WAIT 100
2880 FOR I=0 TO 125 STEP 2
2890 CIRCLE (95+I,99),32,[80,10,100],,,,N
2900 CIRCLE (97+I,99),32,5,,,,N
2910 WAIT 5
2920 NEXT
2930 WAIT 100
2940 GOSUB *COMMENT
2950 WAIT 200
2960 GOSUB *COMMENT
2970 WAIT 150
2980 CIRCLE (221,99),32,[80,10,100],,,,N
2990 CIRCLE (95,99),32,5,,,,N
3000 WAIT 100
3010 GOSUB *COMMENT
3020 WAIT 100
3030 FOR I=0 TO 126 STEP 6
3040 CIRCLE (95+I,99),32,5,,,,N
3050 WAIT 10
3060 NEXT
3070 WAIT 100
3080 GOSUB *COMMENT
3090 WAIT 100
3100 FOR I=0 TO 126 STEP 6
3110 CIRCLE (95+I,99),32,[80,10,100],,,,N
3120 WAIT 10
3130 NEXT
3140 WAIT 100
3150 GOSUB *COMMENT
3160 WAIT 100
3170 FOR C=1 TO 3
3180 FOR I=0 TO 126 STEP 6
3190 CIRCLE (95+I,99),32,C,,,,N
3200 WAIT 10
3210 NEXT
3220 WAIT 100
3230 NEXT
3240 WAIT 100
3250 GOSUB *COMMENT
3260 FOR I=0 TO 126 STEP 6
3270 CIRCLE (95+I,99),32,[80,10,100],,,,N
3280 WAIT 10
3290 NEXT
3300 WAIT 100
3310 GOTO 3440
3320 '
3330 '
3340 DATA ☆☆☆ 直線を円に変えてみます。 ☆☆☆
3350 DATA ☆☆ この円もグラフィックスの基本です。 ☆☆
3360 DATA ☆☆☆ この円を左に移動させます。 ☆☆☆
3370 DATA ☆☆ この円を右端まで移動させてみます。 ☆☆
3380 DATA 移動する円が足跡を残したとするとどうでしょう。
3390 DATA ☆☆ 円を元に戻して移動させてみます。☆☆☆
3400 DATA ☆ 今度は移動した円が足跡を残して行きます。☆
3410 DATA この移動した円の足跡がグラフィックスです。
3420 DATA ☆ 色を変えると雰囲気も変わりきれいに見えます。☆
3430 DATA ☆☆☆ これが、 グラフィックスの基本です。 ☆☆☆
3440 '
3450 'A03.BAS**************************************************T.K.MOSAKU
3460 '
3470 GOSUB *COMMENT
3480 WAIT 100
3490 AB=3:DC=2'
3500 X=158+79*SIN(0):Y=99-48*SIN(0):PI=3.14159!
3510 POINT(X,Y)
3520 FOR T=O TO 2*PI+.02! STEP .01!
3530 X=158+79*SIN(AB*T)
3540 Y=99 -48*SIN(DC*T)
3550 LINE -(X,Y),PSET,4
3560 NEXT
3570 WAIT 100
3580 FOR T=O TO 2*PI+.02! STEP .01!
3590 X=158+79*SIN(AB*T)
3600 Y=99 -48*SIN(DC*T)
3610 LINE -(X,Y),PSET,[80,10,100]
3620 NEXT
3630 GOSUB *COMMENT:WAIT 100
3640 AB=15:DC=14:BB=BB+1
3650 IF BB=1 THEN GOTO 3500 ELSE GOTO 3660
3660 '
3670 GOSUB *COMMENT'
3680 WAIT 100
3690 DEF FNE(P)=99-32*SIN(P)
3700 FOR I=0 TO 360 STEP 2
3710 X=72+I/2
3720 Y=FNE(I/180*PI)
3730 PSET (X,Y),4
3740 NEXT
3750 LINE (72,99)-(252,99),PSET,4:WAIT 100
3760 WAIT 100
3770 FOR I=0 TO 360 STEP 2
3780 X=72+I/2
3790 Y=FNE(I/180*PI)
3800 PSET (X,Y),[80,10,100]
3810 NEXT
3820 LINE (72,99)-(252,99),PSET,[80,10,100]:WAIT 100
3830 GOSUB *COMMENT
3840 '
3850 DEF FNF(P)=99-32*SIN(4*P)
3860 POINT (72,FNF(0))
3870 FOR I=0 TO 360
3880 X=72+I/2
3890 Y=FNF(I/180*PI)
3900 LINE -(X,Y),PSET,4
3910 NEXT
3920 LINE (72,99)-(252,99),PSET,4:WAIT 100
3930 POINT (72,FNF(0))
3940 FOR I=0 TO 360
3950 X=72+I/2
3960 Y=FNF(I/180*PI)
3970 LINE -(X,Y),PSET,[80,10,100]
3980 NEXT
3990 LINE (72,99)-(252,99),PSET,[80,10,100]:WAIT 100
4000 '
4010 DEF FNG(P)=99-32*SIN(8*P)
4020 POINT (72,FNG(0))
4030 FOR I=0 TO 360
4040 X=72+I/2
4050 Y=FNG(I/180*PI)
4060 LINE -(X,Y),PSET,4
4070 NEXT
4080 LINE (72,99)-(252,99),PSET,4:WAIT 100
4090 POINT (72,FNG(0))
4100 FOR I=0 TO 360
4110 X=72+I/2
4120 Y=FNG(I/180*PI)
4130 LINE -(X,Y),PSET,[80,10,100]
4140 NEXT
4150 LINE (72,99)-(252,99),PSET,[80,10,100]:WAIT 100
4160 GOSUB *COMMENT:WAIT 100
4170 'DEF FNE(P)=99-32*SIN(P):PI=3.14159!
4180 FOR I=6 TO 350 STEP 6
4190 X=70+I/2
4200 Y=FNE(I/180*PI)
4210 CIRCLE(X,Y),15,4,,,,N
4220 NEXT
4230 WAIT 100
4240 FOR I=6 TO 350 STEP 6
4250 X=70+I/2
4260 Y=FNE(I/180*PI)
4270 CIRCLE(X,Y),15,[80,10,100],,,,N
4280 NEXT
4290 '
4300 DATA ☆リサージュカーブもグラフィックスの基本です。☆
4310 DATA ☆☆☆ スピードを上げ細かく描きます。 ☆☆☆
4320 DATA ☆☆☆ スピードを上げ細かく描きます。 ☆☆☆
4330 DATA ☆☆☆ サインカーブも基本になります。 ☆☆☆
4340 DATA ☆☆☆ 振幅を細かくして描いてみます。 ☆☆☆
4350 DATA ☆☆ サインカーブ上に円を乗せてみます。 ☆☆
4360 'DATA ☆☆ このようにいろいろな形ができます。 ☆☆
4370 '
4380 '
4390 'A04 **************************************************************
4400 '
4410 GOSUB *COMMENT
4420 WAIT 100
4430 X=158:Y=99:A=4:B=27
4440 DEF FNA(P)=COS(P):DEF FNB(P)=SIN(P):PI=3.1415!
4450 FOR P=0 TO 360 STEP 15
4460 X1=X+A*FNA(P/180*PI):X2=X+B*FNA(P/180*PI)
4470 Y1=Y-A*FNB(P/180*PI):Y2=Y-B*FNB(P/180*PI)
4480 LINE (X1,Y1)-(X2,Y2),PSET,5
4490 WAIT 5
4500 NEXT
4510 WAIT 100
4520 FOR P=0 TO 180 STEP 10
4530 X1=X+35*FNA(P/180*PI*2)
4540 Y1=Y-35*FNB(P/180*PI*2)
4550 CIRCLE (X1,Y1),3,2,,,,N
4560 WAIT 10
4570 NEXT
4580 WAIT 100
4590 FOR P=0 TO 180 STEP 10
4600 X1=X+36*FNA(P/180*PI*2)
4610 Y1=Y-36*FNB(P/180*PI*2)
4620 CIRCLE (X1,Y1),5,3,,,,N
4630 WAIT 10
4640 NEXT
4650 WAIT 100
4660 LINE (158,157)-(158,140),PSET,4:WAIT 20
4670 LINE (153,157)-(153,145),PSET,4:WAIT 20
4680 LINE (163,157)-(163,145),PSET,4:WAIT 20
4690 LINE (148,157)-(148,150),PSET,4:WAIT 20
4700 LINE (168,157)-(168,150),PSET,4:WAIT 20
4710 LINE (143,157)-(143,155),PSET,4:WAIT 20
4720 LINE (173,157)-(173,155),PSET,4:WAIT 20
4730 '
4740 CIRCLE(138,157)-(126,131)-(98, 109),4:WAIT 20
4750 CIRCLE(178,157)-(190,131)-(218,109),4:WAIT 20
4760 CIRCLE(133,157)-(116,131)-(88, 119),4:WAIT 20
4770 CIRCLE(183,157)-(200,131)-(228,119),4:WAIT 20
4780 CIRCLE(128,157)-(106,131)-(78, 129),4:WAIT 20
4790 CIRCLE(188,157)-(210,131)-(238,129),4:WAIT 20
4800 GOSUB *COMMENT:WAIT 100
4810 GOSUB *COMMENT:WAIT 100
4820 LOCATE 0,20:PRINT SPACE$(70)
4830 GOTO 4880
4840 '
4850 DATA ☆☆☆ 円や直線を規則的に書き重ねてみます。 ☆☆☆
4860 DATA ☆☆☆ 円や直線でできたグラフィックスです。 ☆☆☆
4870 DATA ☆☆ このようにいろいろな形ができます。 ☆☆
4880 '
4890 WAIT 100
4900 '
4910 LINE (54,38)-(264,160),PSET,[80,10,100],BF
4920 READ A$,B$:NA=LEN(A$):NB=LEN(B$)
4930 FOR I=0 TO NA/2-1
4940 SYMBOL@(70+15*I,68),MID$(A$,I*2+1,2),1!,1!,6
4950 BEEP 1
4960 WAIT 10
4970 BEEP 0
4980 WAIT 10
4990 NEXT I
5000 '
5010 FOR I=0 TO NB/2-1
5020 SYMBOL@(112+15*I,100),MID$(B$,I*2+1,2),1!,1!,6
5030 BEEP 1
5040 WAIT 10
5050 BEEP 0
5060 WAIT 10
5070 NEXT I
5080 WAIT 100:GOTO 5120
5090 '
5100 DATA 第1部は終わりです,また会いましょう。
5110 '
5120 GOSUB *COMMENT:WAIT 100
5130 GOSUB *COMMENT:WAIT 200
5140 GOSUB *COMMENT:WAIT 200
5150 SYSTEM
5160 '
5170 DATA ☆☆☆ もっと詳しく見てみたい方は、 ☆☆☆
5180 DATA ☆"A00_OPN1.BAS"をF_BASUIC 386で起動させて☆
5190 DATA ☆☆☆ ご覧下さい。きれいですよ。 ☆☆☆